﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Anata.Client
{
    /// <summary>
    /// Data service used by the <c>ImageLoaderViewModel</c> to obtain data
    /// </summary>
    public interface IReferenceProvider
    {
        void LazyFetchKonsumens(int page, Action<List<Konsumen>> callback);
        void LazyFetchCabangLayanans(int page, Action<List<CabangLayanan>> callback);
        void LazyFetchCabangProduks(int page, Action<List<CabangProduk>> callback);
        void LazyFetchKaryawans(int page, Action<List<Karyawan>> callback);
        void LazyFetchFreeGifts(int page, Action<List<FreeGift>> callback);
        void LazyFetchPromos(int page, Action<List<Promo>> callback);
        void LazyFetchJenisPembayarans(int page, Action<List<JenisPembayaran>> callback);



        void LazyFetchKonsumens(int page, Action<List<KonsumenThumbnailViewModel>> callback);
        void LazyFetchCabangLayanans(int page, Action<List<CabangLayananThumbnailViewModel>> callback);
        void LazyFetchCabangProduks(int page, Action<List<CabangProdukThumbnailViewModel>> callback);
        void LazyFetchKaryawans(int page, Action<List<KaryawanThumbnailViewModel>> callback);
        void LazyFetchFreeGifts(int page, Action<List<FreeGiftThumbnailViewModel>> callback);
        void LazyFetchPromos(int page, Action<List<PromoThumbnailViewModel>> callback);
        //void LazyFetchJenisPembayarans(int page, Action<List<JenisPembayaranThumbnailViewModel>> callback);

        void LazyFetchCabangs(int page, Action<List<CabangThumbnailViewModel>> callback);
        void LazyFetchLayanans(int page, Action<List<LayananThumbnailViewModel>> callback);
        void LazyFetchJenisStoks(int page, Action<List<JenisStokThumbnailViewModel>> callback);

        void LazyFetchJenisKelamins(int page, Action<List<JenisKelamin>> callback);
        void LazyFetchStatuss(int page, Action<List<Status>> callback);
        void LazyFetchAgamas(int page, Action<List<Agama>> callback);
        void LazyFetchGolonganDarahs(int page, Action<List<GolonganDarah>> callback);

        void LazyFetchLayanans(int page, Action<List<SimpleLayananViewModel>> callback);
        void LazyFetchKategoriStoks(int page, Action<List<SimpleKategoriStokViewModel>> callback);
        void LazyFetchJenisStoks(int page, Action<List<SimpleJenisStokViewModel>> callback);
        void LazyFetchRekenings(int page, Action<List<SimpleRekeningViewModel>> callback);
        void LazyFetchJenisAsets(int page, Action<List<SimpleJenisAsetViewModel>> callback);
        void LazyFetchJenisMutasiStoks(int page, Action<List<SimpleJenisMutasiStokViewModel>> callback);
        void LazyFetchJenisMutasiRekenings(int page, Action<List<SimpleJenisMutasiRekeningViewModel>> callback);
    }

}
